package apiday02;

import java.util.Arrays;

public class SplitDemo {
    public static void main(String[] args) {
        //按照数字部分做拆分,得到所有的字母部分
        String line = "abc123def456ghi";
        //想调用split方法，要用数组来接收,split()括号里面的就是正则表达式。
        //按数字拆分,[0-9]+代表最少1个数字
        String[] data = line.split("[0-9]+");
        //按照数字拆分最终拆出来的是一个字符串数组，数组包含3个元素：abc def ghi
        System.out.println(data.length);
        //分别输出数组的3个元素
        System.out.println(data[0]);
        System.out.println(data[1]);
        System.out.println(data[2]);
        //按照数字拆分,把剩余的留下,第一组是abc,第二组是def,第三组是ghi,长度是3
        //我想看看都是谁怎么做？之前的数组要for循环遍历。有简单方法：
        //把传过来的数组按照字符串输出，就不用遍历了。
        // 将data数组按照字符串格式输出。[abc, def, ghi]
        System.out.println(Arrays.toString(data));

        //按逗号拆分
        line = "123,456,789,482";
        data = line.split(",");
        //[123, 456, 789, 482]
        System.out.println(Arrays.toString(data));

        //正则表达式 点表示任意字符,拆没了如果就想按点拆转义点
        line = "123.456.789.324";
        data = line.split("\\.");
        //[123, 456, 789, 324]
        System.out.println(Arrays.toString(data));

        //最开始就是可拆分项（.），那么数组中的第1个元素为一个空字符串。
        //如果连续两个(两个)可拆分项，它们中间也会拆出一个空字符串
        //如果末尾多个可拆分项，那么拆出的空串被忽略。
        line = ".1.2.3.3.4.5..789.324......";
        data = line.split("\\.");
        //[, 123, 345, , 789, 324]
        System.out.println(Arrays.toString(data));
    }
}
